package BD;

/*atual*/
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;
//

public class clientes extends bd {
    private int id_cliente   = 0 ;
    private String nome      ="";
    private String endereco  =""   ;
    private String celular   ="";        
    private String fone      ="";        
    

    public int getId_cliente() {
        return id_cliente;
    }

    public void setId_cliente(int id_cliente) {
        this.id_cliente = id_cliente;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getFone() {
        return fone;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }
    public boolean incluir() {
        try {
            if (!estaConectado()) 
                conecta();          
            stmt = getConexao().createStatement();          
            /*(id_clientes, nome, endereco, celular, fone)*/
            sql = "INSERT INTO clientes VALUES((select coalesce(max(id_clientes)+1,1) from clientes),"
                    +"'"+ this.getNome()+" ',"
                    +"'"+ this.getEndereco()+" ', "
                    +"'"+ this.getCelular()+" ', "
                    +"'"+ this.getFone()+ " ');";            
            stmt.executeUpdate(sql);
            stmt.close();
            return true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return false;
        }
    }

    public boolean alterar() {
        try {
            if (!estaConectado()) 
                conecta();          

            stmt = getConexao().createStatement();          
            sql = "update clientes "+
                  "SET nome='"+ this.getNome() + "', "+
                  "endereco='"+ this.getEndereco()+ "', "+
                  "celular='"+ this.getCelular()+ "', "+
                  "fone='" + this.getFone()+ "'  "+
                  " where id_clientes='"+ Integer.toString(this.getId_cliente())+"';";
                   
            stmt.executeUpdate(sql);
            stmt.close();
            //System.out.print(this.sql);
            return true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return false;
        }

    }

    public ResultSet consultar() {
        if (!estaConectado()) {
            conecta();
        }
        try {
            stmt = getConexao().createStatement();
            sql = "SELECT * FROM clientes  WHERE 1=1 ";
            
            if (! this.fone.equals(""))
                sql = sql + " AND fone like '%"+ this.getFone() +"%'";

            if (! this.nome.equals(""))
                sql = sql + " AND nome like '%"+ this.getNome() +"%'";                              
//                sql = sql + " AND descricao like  '%"+this.getDescricao()+"%';";           

            if (this.id_cliente >0)
                sql = sql + " AND id_clientes ='"+ Integer.toString(this.getId_cliente())+"'";                              
            
            //JOptionPane.showMessageDialog(null,sql);
            
            sql = sql + " order by nome";
            stmt.executeQuery(sql);
            rs = stmt.executeQuery(sql);
            return rs;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query cliente \n" + objErro.getMessage());
            return null;
        }
        
    }
    public ArrayList<clientes> getItens(){
        ArrayList itens = new ArrayList();
        rs = this.consultar();
            /*(id_clientes, nome, endereco, celular, fone)*/
        try{
            while(rs.next()){
                clientes  obj = new clientes();
                obj.setId_cliente(rs.getInt("id_clientes"));
                obj.setNome(rs.getString("nome"));
                obj.setEndereco(rs.getString("endereco"));                
                obj.setCelular(rs.getString("celular"));               
                obj.setFone(rs.getString("fone"));

                itens.add(obj);                
            }
            stmt.close();
            disconecta();
        }
        catch(SQLException objerro){
            msgErro = objerro.getMessage();        
            JOptionPane.showMessageDialog(null, "Não foi possível executar a lista de clientes" + objerro.getMessage());
            
        }        
        return itens;
    }
    public boolean excluir() {
        if (!estaConectado()) {
            conecta();
        }        
        try {
            stmt = getConexao().createStatement();                      
            sql ="delete from clientes "+                  
                 "where id_clientes = "+ Integer.toString(this.id_cliente);            
            stmt.execute(sql);            
            return  true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível  a Query \n" + objErro.getMessage());
            return false;
        }
    }
            
    
}